Coloring Register Pairs 1
نویسندگان
چکیده
Many architectures require that a program use pairs of adjacent registers to hold double-precision oating-point values. Register allocators based on Chaitin's graph-coloring technique have trouble with programs that contain both single-register values and values that require adjacent pairs of registers. In particular, Chaitin's algorithm often produces excessive spilling on such programs. This results in underuse of the register set; the extra loads and stores inserted into the program for spilling also slow execution. An allocator based on an optimistic coloring scheme naturally avoids this problem. Such allocators delay the decision to spill a value until late in the allocation process. This eliminates the over-spilling provoked by adjacent register pairs in Chaitin's scheme. This paper discusses the representation of register pairs in a graph coloring allocator. It explains the problems that arise with Chaitin's allocator and shows how the optimistic allocator avoids them. It provides a rationale for determining how to add larger aggregates to the interference graph.
منابع مشابه
Retargetable Graph-Coloring Register Allocation for Irregular Architectures
Global register allocation is one of the most important optimizations in a compiler. Since the early 80’s, register allocation by graph coloring has been the dominant approach. The traditional formulation of graph-coloring register allocation implicitly assumes a single bank of non-overlapping general-purpose registers and does not handle irregular architectural features like overlapping regist...
متن کاملTestability Improvement During High-Level Synthesis
Improving testability during the early stages of HighLevel Synthesis (HLS) reduces test hardware overheads, test costs, design iterations, and also improves fault coverage [1]. In this paper, we present a novel register allocation algorithm which is based on weighted graph coloring, targeting testability improvement. 1. Proposed testability model In our register allocation method, we construct ...
متن کاملRegister File Capacity Satisfaction during Scheduling
In code generation of DSP code for distributed register files architectures the register binding, if not treated properly, becomes a complex problem to be solved. This is also the case for high level synthesis of DSP circuits with limited number of registers. A better way to deal with register file capacity constraints is to alternate between register binding and scheduling in a way that a deci...
متن کاملWhat’s Wrong with Graph Coloring?
Graph coloring is the de facto standard technique for register allocation within a compiler. In this paper we examine the intuition that a better coloring algorithm results in better register allocation. By replacing the coloring phase of the gcc compiler’s register allocator with an optimal coloring algorithm, we demonstrate both the importance of extending the graph coloring model to better e...
متن کاملRegister Allocation with Instruction Scheduling : a New Approach 1
We present a new framework in which considerations of both register allocation and instruction scheduling can be applied uniformly and simultaneously. In this framework an optimal coloring of a graph, called the parallelizable interference graph, provides an optimal register allocation and preserves the property that no false dependences are introduced, thus all the options for parallelism are ...
متن کامل